﻿using System;
using System.Runtime.InteropServices;
using System.Text;

namespace Valve.VR
{
	// Token: 0x02000524 RID: 1316
	public class CVRSystem
	{
		// Token: 0x06001B84 RID: 7044 RVA: 0x000119EC File Offset: 0x0000FBEC
		internal CVRSystem(IntPtr pInterface)
		{
			this.FnTable = (IVRSystem)Marshal.PtrToStructure(pInterface, typeof(IVRSystem));
		}

		// Token: 0x06001B85 RID: 7045 RVA: 0x00011A0F File Offset: 0x0000FC0F
		public void GetRecommendedRenderTargetSize(ref uint pnWidth, ref uint pnHeight)
		{
			pnWidth = 0u;
			pnHeight = 0u;
			this.FnTable.GetRecommendedRenderTargetSize(ref pnWidth, ref pnHeight);
		}

		// Token: 0x06001B86 RID: 7046 RVA: 0x0005EFB4 File Offset: 0x0005D1B4
		public HmdMatrix44_t GetProjectionMatrix(EVREye eEye, float fNearZ, float fFarZ, EGraphicsAPIConvention eProjType)
		{
			return this.FnTable.GetProjectionMatrix(eEye, fNearZ, fFarZ, eProjType);
		}

		// Token: 0x06001B87 RID: 7047 RVA: 0x00011A29 File Offset: 0x0000FC29
		public void GetProjectionRaw(EVREye eEye, ref float pfLeft, ref float pfRight, ref float pfTop, ref float pfBottom)
		{
			pfLeft = 0f;
			pfRight = 0f;
			pfTop = 0f;
			pfBottom = 0f;
			this.FnTable.GetProjectionRaw(eEye, ref pfLeft, ref pfRight, ref pfTop, ref pfBottom);
		}

		// Token: 0x06001B88 RID: 7048 RVA: 0x0005EFD8 File Offset: 0x0005D1D8
		public DistortionCoordinates_t ComputeDistortion(EVREye eEye, float fU, float fV)
		{
			return this.FnTable.ComputeDistortion(eEye, fU, fV);
		}

		// Token: 0x06001B89 RID: 7049 RVA: 0x0005EFFC File Offset: 0x0005D1FC
		public HmdMatrix34_t GetEyeToHeadTransform(EVREye eEye)
		{
			return this.FnTable.GetEyeToHeadTransform(eEye);
		}

		// Token: 0x06001B8A RID: 7050 RVA: 0x0005F01C File Offset: 0x0005D21C
		public bool GetTimeSinceLastVsync(ref float pfSecondsSinceLastVsync, ref ulong pulFrameCounter)
		{
			pfSecondsSinceLastVsync = 0f;
			pulFrameCounter = 0UL;
			return this.FnTable.GetTimeSinceLastVsync(ref pfSecondsSinceLastVsync, ref pulFrameCounter);
		}

		// Token: 0x06001B8B RID: 7051 RVA: 0x0005F048 File Offset: 0x0005D248
		public int GetD3D9AdapterIndex()
		{
			return this.FnTable.GetD3D9AdapterIndex();
		}

		// Token: 0x06001B8C RID: 7052 RVA: 0x00011A60 File Offset: 0x0000FC60
		public void GetDXGIOutputInfo(ref int pnAdapterIndex)
		{
			pnAdapterIndex = 0;
			this.FnTable.GetDXGIOutputInfo(ref pnAdapterIndex);
		}

		// Token: 0x06001B8D RID: 7053 RVA: 0x0005F068 File Offset: 0x0005D268
		public bool IsDisplayOnDesktop()
		{
			return this.FnTable.IsDisplayOnDesktop();
		}

		// Token: 0x06001B8E RID: 7054 RVA: 0x0005F088 File Offset: 0x0005D288
		public bool SetDisplayVisibility(bool bIsVisibleOnDesktop)
		{
			return this.FnTable.SetDisplayVisibility(bIsVisibleOnDesktop);
		}

		// Token: 0x06001B8F RID: 7055 RVA: 0x00011A76 File Offset: 0x0000FC76
		public void GetDeviceToAbsoluteTrackingPose(ETrackingUniverseOrigin eOrigin, float fPredictedSecondsToPhotonsFromNow, TrackedDevicePose_t[] pTrackedDevicePoseArray)
		{
			this.FnTable.GetDeviceToAbsoluteTrackingPose(eOrigin, fPredictedSecondsToPhotonsFromNow, pTrackedDevicePoseArray, (uint)pTrackedDevicePoseArray.Length);
		}

		// Token: 0x06001B90 RID: 7056 RVA: 0x00011A8E File Offset: 0x0000FC8E
		public void ResetSeatedZeroPose()
		{
			this.FnTable.ResetSeatedZeroPose();
		}

		// Token: 0x06001B91 RID: 7057 RVA: 0x0005F0A8 File Offset: 0x0005D2A8
		public HmdMatrix34_t GetSeatedZeroPoseToStandingAbsoluteTrackingPose()
		{
			return this.FnTable.GetSeatedZeroPoseToStandingAbsoluteTrackingPose();
		}

		// Token: 0x06001B92 RID: 7058 RVA: 0x0005F0C8 File Offset: 0x0005D2C8
		public HmdMatrix34_t GetRawZeroPoseToStandingAbsoluteTrackingPose()
		{
			return this.FnTable.GetRawZeroPoseToStandingAbsoluteTrackingPose();
		}

		// Token: 0x06001B93 RID: 7059 RVA: 0x0005F0E8 File Offset: 0x0005D2E8
		public uint GetSortedTrackedDeviceIndicesOfClass(ETrackedDeviceClass eTrackedDeviceClass, uint[] punTrackedDeviceIndexArray, uint unRelativeToTrackedDeviceIndex)
		{
			return this.FnTable.GetSortedTrackedDeviceIndicesOfClass(eTrackedDeviceClass, punTrackedDeviceIndexArray, (uint)punTrackedDeviceIndexArray.Length, unRelativeToTrackedDeviceIndex);
		}

		// Token: 0x06001B94 RID: 7060 RVA: 0x0005F110 File Offset: 0x0005D310
		public EDeviceActivityLevel GetTrackedDeviceActivityLevel(uint unDeviceId)
		{
			return this.FnTable.GetTrackedDeviceActivityLevel(unDeviceId);
		}

		// Token: 0x06001B95 RID: 7061 RVA: 0x00011AA0 File Offset: 0x0000FCA0
		public void ApplyTransform(ref TrackedDevicePose_t pOutputPose, ref TrackedDevicePose_t pTrackedDevicePose, ref HmdMatrix34_t pTransform)
		{
			this.FnTable.ApplyTransform(ref pOutputPose, ref pTrackedDevicePose, ref pTransform);
		}

		// Token: 0x06001B96 RID: 7062 RVA: 0x0005F130 File Offset: 0x0005D330
		public uint GetTrackedDeviceIndexForControllerRole(ETrackedControllerRole unDeviceType)
		{
			return this.FnTable.GetTrackedDeviceIndexForControllerRole(unDeviceType);
		}

		// Token: 0x06001B97 RID: 7063 RVA: 0x0005F150 File Offset: 0x0005D350
		public ETrackedControllerRole GetControllerRoleForTrackedDeviceIndex(uint unDeviceIndex)
		{
			return this.FnTable.GetControllerRoleForTrackedDeviceIndex(unDeviceIndex);
		}

		// Token: 0x06001B98 RID: 7064 RVA: 0x0005F170 File Offset: 0x0005D370
		public ETrackedDeviceClass GetTrackedDeviceClass(uint unDeviceIndex)
		{
			return this.FnTable.GetTrackedDeviceClass(unDeviceIndex);
		}

		// Token: 0x06001B99 RID: 7065 RVA: 0x0005F190 File Offset: 0x0005D390
		public bool IsTrackedDeviceConnected(uint unDeviceIndex)
		{
			return this.FnTable.IsTrackedDeviceConnected(unDeviceIndex);
		}

		// Token: 0x06001B9A RID: 7066 RVA: 0x0005F1B0 File Offset: 0x0005D3B0
		public bool GetBoolTrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, ref ETrackedPropertyError pError)
		{
			return this.FnTable.GetBoolTrackedDeviceProperty(unDeviceIndex, prop, ref pError);
		}

		// Token: 0x06001B9B RID: 7067 RVA: 0x0005F1D4 File Offset: 0x0005D3D4
		public float GetFloatTrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, ref ETrackedPropertyError pError)
		{
			return this.FnTable.GetFloatTrackedDeviceProperty(unDeviceIndex, prop, ref pError);
		}

		// Token: 0x06001B9C RID: 7068 RVA: 0x0005F1F8 File Offset: 0x0005D3F8
		public int GetInt32TrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, ref ETrackedPropertyError pError)
		{
			return this.FnTable.GetInt32TrackedDeviceProperty(unDeviceIndex, prop, ref pError);
		}

		// Token: 0x06001B9D RID: 7069 RVA: 0x0005F21C File Offset: 0x0005D41C
		public ulong GetUint64TrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, ref ETrackedPropertyError pError)
		{
			return this.FnTable.GetUint64TrackedDeviceProperty(unDeviceIndex, prop, ref pError);
		}

		// Token: 0x06001B9E RID: 7070 RVA: 0x0005F240 File Offset: 0x0005D440
		public HmdMatrix34_t GetMatrix34TrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, ref ETrackedPropertyError pError)
		{
			return this.FnTable.GetMatrix34TrackedDeviceProperty(unDeviceIndex, prop, ref pError);
		}

		// Token: 0x06001B9F RID: 7071 RVA: 0x0005F264 File Offset: 0x0005D464
		public uint GetStringTrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, StringBuilder pchValue, uint unBufferSize, ref ETrackedPropertyError pError)
		{
			return this.FnTable.GetStringTrackedDeviceProperty(unDeviceIndex, prop, pchValue, unBufferSize, ref pError);
		}

		// Token: 0x06001BA0 RID: 7072 RVA: 0x0005F28C File Offset: 0x0005D48C
		public string GetPropErrorNameFromEnum(ETrackedPropertyError error)
		{
			IntPtr ptr = this.FnTable.GetPropErrorNameFromEnum(error);
			return Marshal.PtrToStringAnsi(ptr);
		}

		// Token: 0x06001BA1 RID: 7073 RVA: 0x0005F2B4 File Offset: 0x0005D4B4
		public bool PollNextEvent(ref VREvent_t pEvent, uint uncbVREvent)
		{
			return this.FnTable.PollNextEvent(ref pEvent, uncbVREvent);
		}

		// Token: 0x06001BA2 RID: 7074 RVA: 0x0005F2D8 File Offset: 0x0005D4D8
		public bool PollNextEventWithPose(ETrackingUniverseOrigin eOrigin, ref VREvent_t pEvent, uint uncbVREvent, ref TrackedDevicePose_t pTrackedDevicePose)
		{
			return this.FnTable.PollNextEventWithPose(eOrigin, ref pEvent, uncbVREvent, ref pTrackedDevicePose);
		}

		// Token: 0x06001BA3 RID: 7075 RVA: 0x0005F2FC File Offset: 0x0005D4FC
		public string GetEventTypeNameFromEnum(EVREventType eType)
		{
			IntPtr ptr = this.FnTable.GetEventTypeNameFromEnum(eType);
			return Marshal.PtrToStringAnsi(ptr);
		}

		// Token: 0x06001BA4 RID: 7076 RVA: 0x0005F324 File Offset: 0x0005D524
		public HiddenAreaMesh_t GetHiddenAreaMesh(EVREye eEye)
		{
			return this.FnTable.GetHiddenAreaMesh(eEye);
		}

		// Token: 0x06001BA5 RID: 7077 RVA: 0x0005F344 File Offset: 0x0005D544
		public bool GetControllerState(uint unControllerDeviceIndex, ref VRControllerState_t pControllerState)
		{
			return this.FnTable.GetControllerState(unControllerDeviceIndex, ref pControllerState);
		}

		// Token: 0x06001BA6 RID: 7078 RVA: 0x0005F368 File Offset: 0x0005D568
		public bool GetControllerStateWithPose(ETrackingUniverseOrigin eOrigin, uint unControllerDeviceIndex, ref VRControllerState_t pControllerState, ref TrackedDevicePose_t pTrackedDevicePose)
		{
			return this.FnTable.GetControllerStateWithPose(eOrigin, unControllerDeviceIndex, ref pControllerState, ref pTrackedDevicePose);
		}

		// Token: 0x06001BA7 RID: 7079 RVA: 0x00011AB5 File Offset: 0x0000FCB5
		public void TriggerHapticPulse(uint unControllerDeviceIndex, uint unAxisId, char usDurationMicroSec)
		{
			this.FnTable.TriggerHapticPulse(unControllerDeviceIndex, unAxisId, usDurationMicroSec);
		}

		// Token: 0x06001BA8 RID: 7080 RVA: 0x0005F38C File Offset: 0x0005D58C
		public string GetButtonIdNameFromEnum(EVRButtonId eButtonId)
		{
			IntPtr ptr = this.FnTable.GetButtonIdNameFromEnum(eButtonId);
			return Marshal.PtrToStringAnsi(ptr);
		}

		// Token: 0x06001BA9 RID: 7081 RVA: 0x0005F3B4 File Offset: 0x0005D5B4
		public string GetControllerAxisTypeNameFromEnum(EVRControllerAxisType eAxisType)
		{
			IntPtr ptr = this.FnTable.GetControllerAxisTypeNameFromEnum(eAxisType);
			return Marshal.PtrToStringAnsi(ptr);
		}

		// Token: 0x06001BAA RID: 7082 RVA: 0x0005F3DC File Offset: 0x0005D5DC
		public bool CaptureInputFocus()
		{
			return this.FnTable.CaptureInputFocus();
		}

		// Token: 0x06001BAB RID: 7083 RVA: 0x00011ACA File Offset: 0x0000FCCA
		public void ReleaseInputFocus()
		{
			this.FnTable.ReleaseInputFocus();
		}

		// Token: 0x06001BAC RID: 7084 RVA: 0x0005F3FC File Offset: 0x0005D5FC
		public bool IsInputFocusCapturedByAnotherProcess()
		{
			return this.FnTable.IsInputFocusCapturedByAnotherProcess();
		}

		// Token: 0x06001BAD RID: 7085 RVA: 0x0005F41C File Offset: 0x0005D61C
		public uint DriverDebugRequest(uint unDeviceIndex, string pchRequest, string pchResponseBuffer, uint unResponseBufferSize)
		{
			return this.FnTable.DriverDebugRequest(unDeviceIndex, pchRequest, pchResponseBuffer, unResponseBufferSize);
		}

		// Token: 0x06001BAE RID: 7086 RVA: 0x0005F440 File Offset: 0x0005D640
		public EVRFirmwareError PerformFirmwareUpdate(uint unDeviceIndex)
		{
			return this.FnTable.PerformFirmwareUpdate(unDeviceIndex);
		}

		// Token: 0x06001BAF RID: 7087 RVA: 0x00011ADC File Offset: 0x0000FCDC
		public void AcknowledgeQuit_Exiting()
		{
			this.FnTable.AcknowledgeQuit_Exiting();
		}

		// Token: 0x06001BB0 RID: 7088 RVA: 0x00011AEE File Offset: 0x0000FCEE
		public void AcknowledgeQuit_UserPrompt()
		{
			this.FnTable.AcknowledgeQuit_UserPrompt();
		}

		// Token: 0x040010F1 RID: 4337
		public IVRSystem FnTable;
	}
}
